package br.edu.frb.lista.builder;

import br.edu.frb.lista.Lista;
import br.edu.frb.lista.ListaDuplamenteEncadeada;

/**
 * @author Junior
 * @author joelamalio
 */
public class ListaStringBuilder {

    private Lista<String> lista;

    private ListaStringBuilder() {
        lista = new ListaDuplamenteEncadeada<String>();
    }

    public static ListaStringBuilder novo() {
        return new ListaStringBuilder();
    }

    public ListaStringBuilder comTamanho(int x) {
        for (int i = 0; i < x; i++) {
            this.lista.inserirNoFim("Item " + (i + 1));
        }
        return this;
    }
    
    public ListaStringBuilder comValor(final String valor, final int posicao) {
        this.lista.inserirEm(valor, posicao);
        return this;
    }
    
    public ListaStringBuilder comValorNoFim(final String valor) {
        this.lista.inserirNoFim(valor);
        return this;
    }
    
    public ListaStringBuilder comValorNoInicio(final String valor) {
        this.lista.inserirNoInicio(valor);
        return this;
    }

    public Lista<String> build() {
        return lista;
    }
}